package bricolot;

import bricolot.exporter.BricolotoExporterV1;
import bricolot.exporter.BricolotoExporterV2;
import bricolot.exporter.IBricolotoExporter;
import bricolot.importer.AXmlImporter;
import bricolot.importer.BricolotoDomImporter;

public class AppliRoger {

	public static String menu = "==================================================\n"
			+ "1) Lister les garages\n"
			+ "2) Ajouter un garage\n"
			+ "3) Supprimer un garage\n"
			+ "4) Chercher un garage\n"
			+ "5) Ajouter une reparation\n"
			+ "6) Supprimer une reparation\n"
			+ "7) Exporter en XML (dtd1)\n"
			+ "8) Exporter en XML (dtd2)\n"
			+ "9) Importer depuis XML (dtd1)\n" + "10) Quitter\n";

	public static void main(String[] args) {
		Societe roger = new Societe();
		int choix = 0;
		while (choix != 10) {
			System.out.println(menu);
			choix = Util.lireEntier("=> ");
			while (choix < 1 || choix > 11) {
				System.out.println("Saisie incorrecte");
				choix = Util.lireEntier("=> ");
			}
			System.out
					.println("==================================================");
			switch (choix) {
			case 1:
				System.out.println(roger);
				break;
			case 2:
				if (roger.ajouterGar())
					System.out.println("Ok.");
				else
					System.out.println("Nom deja existant");
				break;
			case 3:
				if (roger.supprimerGar(Util
						.lireChaine("Nom du garage a supprimer : ")))
					System.out.println("Ok.");
				else
					System.out.println("Nom incorrect.");
				break;
			case 4:
				Garage g = roger.chercherGar(Util
						.lireChaine("Nom du garage recherche : "));
				if (g == null)
					System.out.println("Aucun garage ne porte ce nom.");
				else
					System.out.println("Resultat de la recherche :\n" + g);
				break;
			case 5:
				if (roger.ajouterRep(Util
						.lireChaine("Nom du garage concerne : ")))
					System.out.println("Ok.");
				else
					System.out.println("Nom incorrect.");
				break;
			case 6:
				if (roger.supprimerRep(Util
						.lireChaine("Nom du garage concerne : "), Util
						.lireEntier("Numero de la reparation a supprimer : ")))
					System.out.println("Ok.");
				else
					System.out.println("Nom ou numero incorrect.");
				break;
			case 7:
				IBricolotoExporter exporter = new BricolotoExporterV1(
						"Bricoloto");
				exporter.visitSociete(roger);
				System.out.println(exporter.getContents());
				exporter.closeStream();
				break;
			case 8:
				IBricolotoExporter exporter2 = new BricolotoExporterV2(
						"Bricoloto2");
				exporter2.visitSociete(roger);
				System.out.println(exporter2.getContents());
				exporter2.closeStream();
				break;
			case 9:
				AXmlImporter importer1 = new BricolotoDomImporter(roger);
				if (importer1.loadContentsOf(Util
						.lireChaine("Nom du fichier : ")) != null)
					System.out.println("Ok.");
				else
					System.out.println("Une erreur est survenue!");
				break;
			}
		}
	}
}
